#浅拷贝
# import copy
#
# originData = [[1,2],{"name":"Tom", "chars":["A","B"]}]
# newData = copy.copy(originData)
# print(id(originData))
# print(id(newData))
# originData[0].append(3)
# originData[1]['age'] = 20
# originData.insert(1,{'a','b','c'})
#
# print("原数据：",originData)
# print("浅拷贝后的数据：",newData)
import math
# from typing import reveal_type

#深拷贝
# import copy
#
# originData = [[1,2],{"name":"Tom", "chars":["A","B"]}]
# newData = copy.deepcopy(originData)
# print(id(originData))
# print(id(newData))
# originData[0].append(3)
# originData[1]['age'] = 20
# originData.insert(1,{'a','b','c'})
#
# print("原数据：",originData)
# print("深拷贝后的数据：",newData)

# for i in range(100,0,-1) :
#     print(i, end=" ")

# for i in range(1,10):
#     for j in range(1,1+i):
#         print(f'{j}*{i}={i*j}', end=" ")
#     print()
# i = 1
# while i <=9:
#     j = 1
#     while j <= i:
#         print(f'{j}*{i}={i*j}', end=" ")
#         j += 1
#     print()
#     i += 1
# for i in range(10):
#     print("*" * 10)
#     print("i=",i)
#     if i % 3 == 0:
#         continue
#     print("i*10= ", i*10)

# import math
# num = int(input("一个正整数："))
# def is_prome(n):
#     if n<=1:
#         return False
#     for i in range(2,int(math.sqrt(n))+1):
#         if n % i ==0:
#             return False
#     return True
# if is_prome(num):
#     print(f"{num}是素数")
# else:
#     print(f"{num}不是素数")

# for n in range(100, 1000):
#     strn = str(n)
#     i = int(strn[0])
#     j = int(strn[1])
#     k = int(strn[2])
#     # # 获取百位数
#     # i = n // 100
#     # # 获取十位数
#     # j = n // 10 % 10
#     # # 获取个位数
#     # k = n % 10
#
#     # 判断是否为水仙花数
#     if n == i**3 + j**3 + k**3:
#          # 输出水仙花数
#         print(n)

#
# def bubblerort(l):
#    if type(l) != list:
#        return "请传入列表"
#    for i in range(len(l)-1):
#        for j in range(len(l)-1-i):
#             if l[j] > l[j+1]:
#                 l[j], l[j+1] = l[j+1], l[j]
#    return l
# print(bubblerort([3,2,1]))

# def func3():
#     txt = '''#a
#     Trans:art. 一;字母A
#     #a.m.
#     Trans:n. 上午
#     #a/c
#     Trans:n. 往来帐户@往来:come - and - go; contact; intercourse@n. 往来帐户
#     #aardvark
#     Trans:n. 土猪
#     #aardwolf
#     Trans:n. 土狼
#     #aasvogel
#     Trans:n. 秃鹰之一种
#     #abaci
#     Trans:n. 算盘
#     #aback
#     Trans:ad. 向后地;朝后地
#     #abacus
#     Trans:n. 算盘
#     #abaft
#     Trans:ad. 向船尾@prep. 在...后
#     #abalone
#     Trans:n. 鲍鱼
#     #abandon
#     Trans:vt. 放弃;沉溺@n. 放任
#     #abandoned
#     Trans:a. 被抛弃的;自弃的;自甘堕落的
#     #abandonee
#     Trans:n. 被遗弃者;被委付者
#     #abandoner
#     Trans:n. 遗弃者;委付者
#     #abandonment
#     Trans:n. 放弃;自暴自弃;放纵
#     #abas
#     Trans:vt. 打倒
#     #abase
#     Trans:vt. 降低...的地位;降低...的品格;贬抑
#     #abasement
#     Trans:n. 贬抑;屈辱;谦卑
#     #abash
#     Trans:vt. 使...羞愧;使困窘
#     #abashment
#     Trans:n. 羞愧;
#     #abate
#     Trans:vt. 缓和;减弱;减少;废除@vi. 缓和;减弱;减少
#     #abatement
#     Trans:n. 减少;减轻;缓和
#     #abatis
#     Trans:n. 鹿柴;拒木;铁丝网
#     #abatment
#     Trans:n. 消除，减除
#     #abb
#     Trans:n. 横丝;纬;羊毛
#     #abbacy
#     Trans:n. 大修道院院长之职位;管区;任期
#     #abbatial
#     Trans:a. 大修道院的;大修道院长的;女大修道院长的
#     #abbe
#     Trans:n. 大修道院院长;僧侣;神父
#     #abbess
#     Trans:n. 女修道院院长;女庵主持
#     #abbey
#     Trans:n. 修道院
#     #abbot
#     Trans:n. 修道院院长;方丈;住持
#     #abbreviate
#     Trans:vt. 缩写;使...简略;缩短
#     #abbreviation
#     Trans:n. 缩写
#     #abbreviator
#     Trans:n. 缩写者
#     #abc
#     Trans:n. 基础知识;美国广播公司;澳大利亚广播公司
#     #abcoulomb
#     Trans:n. 绝对库伦
#     #abdicate
#     Trans:vt. 放弃@vi. 逊位
#     #abdication
#     Trans:n. 逊位;弃权;辞职
#     #abdicator
#     Trans:n. 放弃者;让位者
#     #abdomen
#     Trans:n. 腹部
#     #abdominal
#     Trans:a. 腹部的;腹式呼吸;开腹手术
#     #abduct
#     Trans:vt. 诱拐;绑走
#     #abduction
#     Trans:n. 诱拐
#     #abductor
#     Trans:n. 诱拐者
#     #abe
#     Trans:n. 亚伯;Abraham 的昵称
#     #abeam
#     Trans:ad. 与船的龙骨成直角
#     #abecedarian
#     Trans:n. 初学者@a. 字母的;初步的
#     #abed
#     Trans:ad. 在床上
#     #abelmosk
#     Trans:n. 秋葵
#     #aberrance
#     Trans:n. 脱离正道;越轨;脱离常轨
#     #aberrant
#     Trans:a. 脱离正道的;脱离常轨的;变体的
#     #aberration
#     Trans:n. 越轨;光行差;心理失常;色差
#     #abestrine
#     Trans:adj. 石棉的
#     #abet
#     Trans:vt. 教唆;帮助'''
#
# data = txt.split("\n    #")
# myDict = {}
# for item in data:
#         # 处理第一个单词字符串
#         if item.startswith("#"):
#             item = item[1:]
#         # 拆分单词项
#         k, w = item.split("\n    Trans:")
#         myDict[k] = w
#
#     inw = input("请输入一个单词：")
# if  inw in myDict:
#         trans = myDict[inw]
#         print(trans)
# else:
#         print("输入的单词不存在")

# def abc():#无参函数
#     #语句块
# ##调用
# # abc()

#有参函数-位置参数
# def abc(n,m):
#     print(n,m)
# abc(5,6)

#有参函数—可变位置参数（不定长位置参数）
# def function(*args):
#     print(type(args))
#     print("内容：",args)
# function(1,"ss",{'a':123},[1234],{1,2,3,4},('q','v'))

#有参函数-可变关键字参数（不定长关键字参数）
# def function2(**kwargs):
#     print(type(kwargs))
#     print("内容：", kwargs)
#
# function2(name="张三",age=29,gender="男")

# m = 20
# def show1():
#     # 使用全局变量
#     print("show1:", m)
#
# def show2():
#     # 使用全局变量
#     print("show2:", m)
#
# # 使用全局变量
# print(m)
# show1()
# show2()
# # 使用全局变量
# print(m)

# def factorial(n):
#     if n == 0 or n ==1 :
#         return 1
#     return factorial(n-1) * n
# print(factorial(5))

def fibonacci(n):
    if n <=0:
        return 0
    elif n==1 or n==2:
        return 1
    else:
        return fibonacci(n-1)+fibonacci(n-2)
n = 5
result = fibonacci(n)
print(f"第{n}项结果是{result}")

# def add(n1, n2):
#     return n1 + n2
#
# result = add(1,2)
# print(result)
#
#
# add = lambda x,y: x+y
# result = add(2,3)
# print(result)
#
# func = lambda x: x**2  if x > 3 else x**3
# print(func(3))
#
# def returnvalue():
#     return 1,2
# a,b = returnvalue()
# print(a,b)
# print(type(a))
